package com.badger.pattern;

/**
 * 策略模式
 * @author liqi
 *
 */
public class TestStrategy {
    public static void main(String[] args) {
        // 普通实现类 方式
        getLampStatus(new EnergySavingLight());
        // 匿名类方式
        getLampStatus(new Lamp() {
            @Override
            public boolean status() {
                return Boolean.FALSE;
            }
        });
        // lambda 表达式方式
        getLampStatus(() -> Boolean.TRUE);
    }

    static void getLampStatus(Lamp lamp) {
        System.out.println(lamp.status());
    }

    interface Lamp {
        boolean status();
    }

    static class EnergySavingLight implements Lamp {
        @Override
        public boolean status() {
            return false;
        }
    }
}
